﻿
import java.text.DateFormat;
import java.time.LocalDate;
import java.util.Arrays;
import java.util.Random;

public class DateSort2 {

    public static void main( String[] args ) {

        final Random random = new Random();

        final LocalDate[] dates = new LocalDate[ 5 ] ;

        // 使用循环对 dates 数组进行初始化
        for( int i = 0 ; i < dates.length ; i++){
            // 随机产生 年份、月份、日期，并以此获得 LocalDate 实例
            int years =  random.nextInt(2020);
            int months = random.nextInt(12) + 1;
            int days;
            switch ( months ){
                case 1: case 3: case 5: case 7: case 8: case 10: case 12:
                    days = random.nextInt(31)+1;break;
                case 2:
                    if ( years % 4 == 0 && years % 100 == 0 || years % 400 ==0){
                        days = random.nextInt( 29 ) + 1;
                    }else days = random.nextInt( 28 ) +1;break;
                default:days = random.nextInt( 30 ) +1 ;break;
            }
            LocalDate date = LocalDate.of( years , months , days);
            dates[ i ] = date ;
        }

        // 使用循环输出排序前的日期
        System.out.println("排序前的日期：");
        for (int i = 0 , n = dates.length; i < n ; i++){
            System.out.println( dates[i] );
        }

        // 使用 LocalDate 类提供的方法，对日期进行比较并排序
        Arrays.sort( dates );

        // 使用循环输出排序后的日期
        System.out.println("排序前的日期：");
        for (int i = 0 , n = dates.length; i < n ; i++){
            System.out.println( dates[i] );
        }


    }
}
